﻿#include "addwidget.h"
#include "ui_addwidget.h"
#include <qtextcodec.h>
#include "personcontroller.h"
#include "QMessageBox"
#pragma execution_character_set("utf-8")

AddWidget::AddWidget(int i,QWidget *parent) :QWidget(parent),ui(new Ui::AddWidget),index(i)
{
    ui->setupUi(this);
    initFun();
    initAttr();
}

void AddWidget::initAttr()
{
    index==0 ? ui->label_where->setText("手机"):ui->label_where->setText("电话卡");
    ui->label_where->setStyleSheet("QLabel{font-size:22pt;color:red}");
    this->setWindowTitle(QString("添加用户").toUtf8());
    QPalette palette;
    QPixmap pixmap("./images/bg1.jpg");
    palette.setBrush(QPalette::Background, QBrush(pixmap));
    setPalette(palette);

    QPixmap pixmap2("./images/LitterDr.png");
    QIcon icon(pixmap2);
    setWindowIcon(icon);
}

void AddWidget::initFun()
{
    connect(ui->btn_comfirm,&QPushButton::clicked,this,&AddWidget::addPerson);
    connect(ui->btn_cancel,&QPushButton::clicked,this,&AddWidget::cancel);
}

/*
 * @author  : Zeeland
 * @describe: 该函数用于新建一个联系人，在写入一个新的联系人之间，再输入了电话之后判断是否
 *            在该空间中存在与其相同的电话号码，如果存在，则拒接添加该联系人,并且告诉用户
 *            这个人的名字，如果不存在，则写入该联系人于对应的文本文件中去。
 * @param   : null
 * @return  : void
 */
void AddWidget::addPerson()
{
    QList<QString> info ;
    //判断重名，和重复的电话号码
    QList<QString> receiveList =PersonController::hasEqualsElement(ui->lineEdit_number->text(),1,index);
    //添加成功
    if(receiveList.size()!=0)//存在相同的电话号码
    {
        //告诉他已经有这个电话了，人名为谁，自己去编辑那个人的信息
        QString str =receiveList[0]+"已经存在相同的电话号码了，请重新输入";
        QMessageBox::about(this, "About", str);
    }
    else
    {
        //写入在文件结尾
        info.push_back(ui->lineEdit_name->text());
        info.push_back(ui->lineEdit_number->text());
        info.push_back(ui->lineEdit_place->text());
        info.push_back(ui->lineEdit_birth->text());
        info.push_back(ui->lineEdit_postcode->text());
        info.push_back(ui->lineEdit_company->text());
        //PersonController::printQList(info);
        PersonController::addPerson(info,index);
        QMessageBox::about(this, "Information", "导入成功");
        emit hasDestory();
        destroy();
    }

}

/*
 * @author  : Zeeland
 * @describe: 快捷键设置，按下esc退出
 * @param   : null
 * @return  : void
 */
void  AddWidget::keyPressEvent(QKeyEvent *ev)
{
    if(ev->key() == Qt::Key_Escape)
    {
        destroy();
        return;
    }
    QWidget::keyPressEvent(ev);
}


void AddWidget::cancel()
{
    this->close();
}

AddWidget::~AddWidget()
{
    delete ui;
}


